package com.ideal.mapper;

import java.util.List;

import com.ideal.dto.DictInfoDto;
import com.ideal.dto.config.req.SysTreeDictReqDto;
import com.ideal.dto.config.res.SysTreeDictPageDto;
import com.ideal.model.SysTreeDict;
import org.apache.ibatis.annotations.Param;

/**
 * 树形结构字典Mapper接口
 *
 * @author ruoyi
 * @date 2022-07-21
 */
public interface SysTreeDictMapper
{
    /**
     * 查询树形结构字典
     *
     * @param dictId 树形结构字典主键
     * @return 树形结构字典
     */
    public SysTreeDict selectSysTreeDictByDictId(Long dictId);

    /**
     * 查询树形结构字典列表
     *
     * @param sysTreeDict 树形结构字典
     * @return 树形结构字典集合
     */
    public List<SysTreeDict> selectSysTreeDictList(SysTreeDict sysTreeDict);

    /**
     * 新增树形结构字典
     *
     * @param sysTreeDict 树形结构字典
     * @return 结果
     */
    public int insertSysTreeDict(SysTreeDict sysTreeDict);

    /**
     * 修改树形结构字典
     *
     * @param sysTreeDict 树形结构字典
     * @return 结果
     */
    public int updateSysTreeDict(SysTreeDict sysTreeDict);

    /**
     * 删除树形结构字典
     *
     * @param dictId 树形结构字典主键
     * @return 结果
     */
    public int deleteSysTreeDictByDictId(Long dictId);

    /**
     * 批量删除树形结构字典
     *
     * @param dictIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSysTreeDictByDictIds(Long[] dictIds);

    List<DictInfoDto> findChildByDictValue(String dictValue);

    List<SysTreeDictPageDto> selectParentSysTreeDictList(SysTreeDict sysTreeDict);

    DictInfoDto findOneByDictLabel(String dictLabel);

    DictInfoDto findOneByDictValueAndParent(String dictValue);

    SysTreeDict findChildOneByChildDictValueAndParentId(@Param("dictValue") String dictValue,@Param("parentId") Long parentId);

}
